export interface ApiResponse<T> {
  result: T;
  code: number;
  message: string;
}

export interface ChainInfo {
  consensusnodes: number;
  nodes: number;
  height?: string;
  totalTransactions?: string;
  currentBlockHash?: string;
  previousBlockHash?: string;
}

export interface NodeInfo {
  nodeCount: number;
  cacheTransNumber: number;
  acceptedTransNumber: number;
}

export interface NodeCount {
  consensusnodes: string;
  nodes: string;
}

export interface CacheTransNumber {
  numberofcache: string;
}

export interface AcceptedTransNumber {
  acceptedNumber: string;
}

export interface Transaction {
  id: string;
  timestamp: number;
  data: any;
  proof?: string;
}

export interface DIDDocument {
  did: string;
  publicKeys: {
    id: string;
    type: string;
    publicKeyHex: string;
  }[];
}

export interface DBQueryResult {
  key: string;
  value: any;
}

export interface TransactionProof {
  transactionId: string;
  proof: string;
  isValid: boolean;
} 